1. Field of the Disclosure
The present disclosure relates generally to electronic devices, and more particularly to data processing devices.
2. Description of the Related Art
Data processing devices such as microprocessors frequently operate at a considerably higher speed than associated external memory devices that store data. Speculatively accessing data from the external memory before the data is needed is referred to as prefetching. Prefetching data can improve the computational performance of a data processing device. The data processing device prefetches data from the external memory and stores the data at one or more data cache memories, which operate at greater speed than the external memory. Prefetching of data typically is based on heuristic information identified during previous memory requests. The data processing device can include a prefetch module, which uses the heuristic information to speculatively prefetch data that the prefetch module has determined has a greater chance of being subsequently required.
The locations in the external memory where particular data is stored can depend on how the data is stored in a data structure such as a hash table. One type of data prefetching is stride prefetching. A pattern of sequential or quasi-sequential data accesses is observed, and data is prefetched in a manner consistent with the observed stride pattern. Another type of data prefetching is region prefetching. Region prefetching is based on previous patterns of memory accesses that indicate which regions in memory are being accessed more frequently. The prefetch module analyzes the previous patterns in order to predict future behavior. Such analysis can require that a significant number of mathematical operations be performed in parallel, increasing product cost.